// 一个死锁的小例子。
#include <muduo/base/Mutex.h>

using muduo::MutexLock;
using muduo::MutexLockGuard;

class Request {
public:
	void Process() __attribute__((noinline)) {
		MutexLockGuard lock(_mutex);
		Print();
	}

	void Print() const __attribute__((noinline)) {
		MutexLockGuard lock(_mutex);
	}

private:
	mutable MutexLock _mutex;
};

int 
main() {
	// 好气啊，这里死锁了没有生成 coredump 文件。见 MutualDeadLock.cc 。
	Request req;
	req.Process();
}
